package com.woniuxy.yygh.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniuxy.yygh.model.user.UserInfo;
import com.woniuxy.yygh.vo.user.LoginVo;
import com.woniuxy.yygh.vo.user.UserAuthVo;
import com.woniuxy.yygh.vo.user.UserInfoQueryVo;

import java.util.Map;

/**
 * <P> @Author: ideaAdmin
 * <P> TODO: interface
 * <P> TODO: 用户信息接口
 * <P> Date: 2022/3/3:18:53
 * <P> Description:
 */

public interface UserInfoService {
    /**
     * TODO: 用户手机号登录接口  并返回登录后的信息 生成token
     **/
    Map<String, Object> loginUser(LoginVo loginVo);

    /**
     * TODO:用户认证接口 对用户进行信息更改
     **/
    void userAuth(Long userId, UserAuthVo userAuthVo);


    /**
     * TODO:获取用户id信息接口
     **/
    UserInfo getById(Long userId);

    /**
     *  TODO: 通过名字做模糊查询 和 vo对象 做查询 获取用户列表 条件加分页
     **/
    IPage<UserInfo> selectPage(Page<UserInfo> pageParam, UserInfoQueryVo userInfoQueryVo);

    /**
     * TODO:根据用户id 锁定用户 更改状态
     **/
    void lock(Long userId, Integer status);

    /**
     * TODO:通过用户id获得用户信息
     **/
    Map<String, Object> show(Long userId);

    /**
     * TODO:认证方法 通过id 设置用户的认证 只修改为 认证中的
     *  2 表示前端需要认证  -1表示认证失败 也没有认证
     **/
    void approval(Long userId, Integer authStatus);

    /**
     * TODO:通过id获得用户信息 更改密码
     **/
    boolean updatePassword(Long userId, UserInfo userInfo);
}
